import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt

# 定义弹簧系统的运动方程
def spring_mass_system(y, t, m, b, k, F):
    x, v = y
    dxdt = v
    dvdt = (-k/m)*x - (b/m)*v + F/m
    return [dxdt, dvdt]

# 给定的参数
M, k, b, F = 1.0, 0.5, 0.2, 1.0
init_status = [-1, 0.0]  # 初始位移和速度
t = np.arange(0, 50, 0.02)  # 时间点

# 使用odeint求解微分方程
solution = odeint(spring_mass_system, init_status, t, args=(M, b, k, F))

# 绘制结果
plt.figure(figsize=(10, 6))
plt.plot(t, solution[:, 0], label='Displacement')
plt.plot(t, solution[:, 1], label='Velocity')
plt.xlabel('Time (s)')
plt.ylabel('Value')
plt.title('Spring-Mass System Response')
plt.legend()
plt.show()